User gestures indicating rates of execution of functions

ABSTRACT

Aspects of this disclosure are directed to receiving, by a computing device having one or more processors and a presence-sensitive interface, an indication of a first user gesture to select an icon of a graphical keyboard displayed by the presence-sensitive interface, and receiving, by the computing device, an indication of a second user gesture that indicates a rate of execution of a function associated with the selected icon. The computing device may execute the function associated with the selected icon at an execution rate based on the indicated rate of execution.

TECHNICAL FIELD

This disclosure relates to computing devices and, more particularly, tothe execution of functions of the computing devices.

BACKGROUND

Computing devices may perform various functions, such as displayingimage content such as documents, e-mails, and pictures on a screen.Computing devices may accept a user input and perform one or morefunctions in response to receiving the user input. For example, thecomputing device may include a presence-sensitive interface, such as apresence-sensitive display. The computing device may, in some examples,cause the presence-sensitive display to display one or more selectableicons, such as icons of a graphical keyboard.

The computing device may receive a user input for the selection of anicon displayed by the presence-sensitive display. In response toreceiving the user input, the computing device may perform one or morefunctions associated with the selected icon. For instance, a user mayselect a character key of a graphical keyboard displayed by thepresence-sensitive display by touching a portion of thepresence-sensitive display that is associated with the displayedcharacter key. In response, the computing device may cause thepresence-sensitive display to display the character associated with theselected character key, such as in a word processing or otherapplication executing on one or more processors of the computing device.

SUMMARY

In one example, this disclosure describes a method performed by acomputing device having one or more processors and a presence-sensitiveinterface that includes receiving, by the computing device, anindication of a first user gesture to select an icon of a graphicalkeyboard displayed by the presence-sensitive interface of the computingdevice. The method further includes receiving, by the computing device,an indication of a second user gesture that indicates a rate ofexecution of a function associated with the selected icon, andexecuting, by the computing device, the function associated with theselected icon at an execution rate based on the indicated rate ofexecution.

In another example, this disclosure describes a computer-readablestorage medium that includes instructions that, if executed by acomputing device having one or more processors and a presence-sensitiveinterface, cause the computing device to perform a method that includesreceiving, by the computing device, an indication of a first usergesture to select an icon of a graphical keyboard displayed by thepresence-sensitive interface of the computing device, receiving, by thecomputing device, an indication of a second user gesture that indicatesa rate of execution of a function associated with the selected icon, andexecuting, by the computing device, the function associated with theselected icon at an execution rate based on the indicated rate ofexecution.

In another example, this disclosure describes a computing device thatincludes one or more processors, and a presence-sensitive interfaceoperable to display a graphical keyboard having one or more selectableicons, receive an indication of a first user gesture to select an iconof the graphical keyboard displayed by the presence-sensitive interface,and receive an indication of a second user gesture that indicates a rateof execution of a function associated with the selected icon. Thecomputing device further includes instructions, that if executed by theone or more processors, cause the computing device to determine a rateof the indicated rate of execution, and to perform the functionassociated with the selected icon at an execution rate based on thedetermined rate of the indicated rate of execution.

Aspects of this disclosure may provide one or more advantages. Forinstance, the techniques of this disclosure may allow a computing deviceto change the rate of execution of a function associated with an icondisplayed by a presence-sensitive interface of the computing device. Asone example, a user of the computing device may not need to repeatedlyselect the icon to execute the function associated with the icon. Inaddition, the user may not need to continuously select the icon whilethe computing device repeatedly executes a function associated with theicon at a default rate of repeated execution. Rather, the user mayprovide a gesture that indicates a rate of execution of a functionassociated with the selected icon, and the computing device may executethe function associated with the selected icon at an execution ratebased on the indicated rate of execution.

The details of one or more aspects of this disclosure are set forth inthe accompanying drawings and the description fellow. Other features,objects, and advantages of the disclosure will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating an example computing device forreception of a an indication of a user gesture and the performance of afunction associated with a selected icon at an execution rate based on arate of execution indicated by the user gesture, in accordance with oneor more aspects of this disclosure.

FIG. 2 is a block diagram illustrating an example computing device, inaccordance with one or more aspects of this disclosure.

FIG. 3 is a flow chart illustrating an example operation of a computingdevice, in accordance with one or more aspects of this disclosure.

FIG. 4 is a flow chart illustrating another example operation of acomputing device, in accordance with one or more aspects of thisdisclosure.

FIG. 5 is a flow chart illustrating another example operation of acomputing device, in accordance with one or more aspects of thisdisclosure.

DETAILED DESCRIPTION

Examples described in this disclosure are directed to techniques thatmay enable a user to change the rate of execution of a functionassociated with an icon of a graphical keyboard displayed by apresence-sensitive interface of a computing device. For example, thecomputing device may be a cellular telephone. The cellular telephone mayinclude a presence-sensitive interface (e.g., a presence-sensitive ortouch-sensitive display) that displays a graphical keyboard and receivesa user input, such as a touch gesture with the user's finger. The usermay select an icon displayed by the presence-sensitive display, such asa delete key, and may provide a gesture to change the rate of deletion.For instance, after selecting the delete key, the user may provide thegesture of sliding the user's finger to the left or to the right. Insuch an example, the computing device may increase or decrease the rateof deletion based on the distance and direction that the user moved hisor her finger to the left or to the right of the delete key with thegesture.

As another example, a user may provide a gesture to change the rate ofexecution of a function associated with an icon of a graphical keyboarddisplayed by a touch-sensitive display of the computing device byincreasing or decreasing the amount of area of the touch-sensitivedisplay that is in contact with an input unit (e.g., the user's finger).For instance, a user may select an icon of a graphical keyboard bytouching the icon with his or her finger, and may provide the gesture ofpressing down with increased force on the icon. The increased force maycause an increase in the amount of surface area on the touch-sensitivedevice that is in contact with the user's finger. In such an example,the computing device may change the execution rate of a functionassociated with the icon (e.g., the rate of deletion) based on theamount of surface area of the touch-sensitive display that is in contactwith the user's finger.

In some examples, the computing device may output an indication of theexecution rate. For instance, the computing device may cause the displayto output an indicator bar, a numerical indication of the execution ratea function, a change in color of the selected icon, or otherindications. In certain examples, the computing device may output anaudible indication of the execution rate.

FIG. 1 is a block diagram illustrating an example computing device forreception of an indication of a user gesture and the performance of afunction associated with a selected icon at an execution rate based on arate of execution indicated by the user gesture, in accordance with oneor more aspects of this disclosure. As illustrated in FIG. 1, computingdevice 2 may include display 4 and function rate analysis module 6.Examples of computing device 2 may include, but are not limited to,portable or mobile devices such as cellular phones, personal digitalassistants (PDAs), tablet computers, laptop computers, portable gamingdevices, portable media players, e-book readers, watches, as well asnon-portable devices such as desktop computers.

Display 4 may be a liquid crystal display (LCD), e-ink, organic lightemitting diode (OLED), or other display. Display 4 may present thecontent of computing device 2 to a user. For example, display 4 maydisplay the output of applications executed on one or more processors ofcomputing device 2 (e.g., word processing applications, web browsers,text messaging applications, email applications, and the like),confirmation messages, indications, or other functions that may need tobe presented to a user. In some examples, display 4 may provide some orall of the functionality of a user interface of computing device 2. Forinstance, display 4 may be a presence-sensitive and/or a touch-sensitiveinterface that may allow a user to interact with computing device 2.

In the illustrated example of FIG. 1, computing device 2 may causedisplay 4 to display graphical keyboard 8. For example, display 4 mayinclude a presentation portion 9 that displays text entered by a user,and a graphical keyboard 8 with which the user enters text that isdisplayed by presentation portion 9. Presentation portion 9 may displayother icons or images in addition to the text entered by the user.

In some examples, a user may provide a user input to select one or moreicons of graphical keyboard 8 by touching the area of display 4 thatdisplays the icon of graphical keyboard 8. For instance, as illustrated,computing device 2 may receive an indication of a touch gesture with aninput unit (e.g., the index finger of the user's right hand, in thisexample) at location 10 to select the delete key of graphical keyboard8. In certain examples, as when display 4 includes a presence-sensitivedisplay, a user input may be received when a user brings an input unitsuch as a finger, a stylus, a pen, and the like, within proximity ofdisplay 4 that is sufficiently close to enable display 4 to detect thepresence of the input unit. As such, an indication of a touch gesture,such as the illustrated touch gesture at location 10, may be received bycomputing device 2 without actual physical contact between an input unitand display 4.

Computing device 2 may determine a function associated with the selectedicon of graphical keyboard 8. As one example, computing device 2 maydetermine that the function of causing display 4 to display thecharacter “A,” on presentation portion 9, is associated with theselection of the “A” icon displayed by graphical keyboard 8. As in theexample of FIG. 1, computing device 2 may determine that the selectionof the “DELETE” icon of graphical keyboard 8 is associated with thefunction of removing characters that are displayed by display 4 onpresentation portion 9. For instance, a user may select thecorresponding character icons of graphical keyboard 8 to cause display 4to display the phrase, “My test phrase” on presentation portion 9. Insuch an example, a user may then select the “DELETE” icon of graphicalkeyboard 8 to cause computing device 2 to remove a character of thephrase on presentation portion 9. For instance, a user may select the“DELETE” icon three times to remove the last three characters of theexample phrase (i.e., the “e”, “s”, and “a” characters) to cause display4 to display the phrase, “My test phr” on presentation portion 9.

In some examples, function rate analysis module 6 may determine a baserate of execution of a function associated with a selected icon. As inthe example of FIG. 1, a user may provide a touch gesture at location 10to select the “DELETE” icon of graphical keyboard 8. Function rateanalysis module 6 may determine a base rate of execution of the deletefunction associated with the “DELETE” icon, and may cause computingdevice 2 to repeatedly execute the delete function at the determinedbase rate of execution while the “DELETE” icon is selected. Forinstance, a user may select and hold (i.e., continue to select) the“DELETE” icon for a period of time, such as five seconds. Function rateanalysis module 6 may determine the base rate of execution of the deletefunction as five characters per second, as one example. As such,function rate analysis module 6 may cause computing device 2 to executethe delete function to delete twenty-five characters (i.e., fivecharacters per second for five seconds). As another example, functionrate analysis module 6 may determine the base rate of execution to beone character per selection, in examples where the user does notcontinue to select a particular icon and, instead, taps the icon once.

In some examples, the base rate of execution may be pre-selected andcomputing device 2 may be preprogrammed with the base rate of execution.In these examples, function rate analysis module 6 may determine thebase rate of execution based on the pre-selected base rate of execution.For instance, in these examples, in response to a selection of an iconon graphical keyboard 8, function rate analysis module 6 may determinethe base rate of execution based on the pre-selected base rate ofexecution, and cause computing device 2 to execute the function at thebase rate of execution.

In the example illustrated in FIG. 1, computing device 2 may receive anindication of rate gesture 12 that indicates a rate of execution of afunction associated with the selected icon. For instance, the user mayprovide rate gesture 12 which may indicate a rate of execution of afunction associate with the selected icon that is different than thebase rate of execution. In the example of FIG. 1, rate gesture 12includes the motion of the user's finger from location 10 to location 14in a substantially horizontal path. However, aspects of this disclosureare not limited to such a horizontal motion. In some alternate examples,rate gesture 12 may include the motion of the user's finger in asubstantially vertical path, a circular path, or some other path. Incertain examples, rate gesture 12 may include gestures such as a touchgesture, or a repeated tapping of an input unit on display 4 at or nearthe selected icon, or at some other location on display 4, such as at alocation of display 4 configured to receive rate gestures.

In examples where computing device 2 receives rate gesture 12, functionrate analysis module 6 may determine the execution rate of the functionassociated with the icon selected by the touch gesture (e.g., thefunction associated with the “DELETE” icon selected with the touchgesture provided at location 10 in the example of FIG. 1) by determininga distance between location 10 and location 14, and determining theexecution rate of the function based on the determined distance. Forinstance, function rate analysis module 6 may change the execution rateof the function associated with the selected icon (e.g., the deletefunction in the illustrated example) as compared to a base rate ofexecution proportionally to the distance between location 10 andlocation 14. In other words, rate gesture 12 may cause function analysismodule 6 to determine a rate of execution of the selected function thatmay be different than the base rate of execution. In this manner, theexample techniques described in this disclosure may allow the user tomodify the rate at which computing device 2 executes a functionassociated with a selected icon (e.g., the rate of deletion in thisexample).

In certain examples, after receiving an indication of a first usergesture for the selection of an icon displayed by display 4 (e.g., atouch gesture at location 10), computing device 2 may cause display 4 todisplay an indication of a second user gesture that may be provided bythe user to indicate a rate of execution of a function associated withthe selected icon. For instance, in some examples, computing device 2may cause display 4 to display the dashed line of FIG. 1 thatillustrates rate gesture 12. In such an example, the displayedindication of the rate gesture may provide a visual cue to a user toindicate to the user that the rate gesture may be performed subsequentto the touch gesture to cause computing device 2 to change the executionrate of a function associated with the selected icon. In some examples,computing device 2 may cause display 4 to display other indications of arate gestures that may be performed, such as displaying text thatdescribes such gestures, audio output describing such gestures, andother similar indications.

In some examples, function rate analysis module 6 may change theexecution rate of the function associated with the selected icon in anon-linear manner, such as by changing the execution rate proportionallyto the square of the distance between location 10 and location 14. Theremay be different example techniques for computing device 2 to receiverate gesture 12, and examples of the manner in which function rateanalysis module 6 may change the rate of execution. The exampletechniques of this disclosure are not limited to the above examples.

Function rate analysis module 6 may determine the execution rate of thefunction associated with the selected icon (e.g., the delete function inthe example of FIG. 1) based on the direction of rate gesture 12. Forexample, in the example of FIG. 1, the user may provide rate gesture 12in a right-to-left motion from location 10 to location 14. In such anexample, function rate analysis module 6 may increase the execution rateof the function associated with the selected icon based on theright-to-left direction of rate gesture 12. Similarly, in examples whererate gesture 12 is provided in a left-to-right direction, function rateanalysis module 6 may decrease the execution rate of the functionassociated with the selected icon.

Moreover, although rate gesture 12 is illustrated as moving the user'sfinger from location 10 to location 12, examples of rate gesture 12 arenot so limited. In some examples, rate gesture 12 may include changes inthe amount of surface area on display 4 that is in contact with theinput unit. For instance, a user may press his or her finger withadditional force at location 10. Due to the additional force, the amountof surface area on display 4 that is in contact with the user's fingermay increase. In this example, function rate analysis module 6 maydetermine that the amount of surface area on display 4 that is incontact with the user's finger increased. In response, function rateanalysis module 6 may increase the execution rate of the functionassociated with the selected icon.

In reverse, function rate analysis module 6 may also determine whenthere is decrease in the amount of surface area of display 4 that iscontact with the input unit. In these situations, function rate analysismodule 6 may decrease the execution rate of the function associated withthe selection icon.

In some examples, computing device 2 may cause display 4 to display anindication of the execution rate of the function associated with theselected icon. For instance, as in FIG. 1, function rate analysis module6 may determine an execution rate of the delete function based on thereceived indication of rate gesture 12, and may cause display 4 todisplay indicator bar 16. Indicator bar 16 may provide a visualindication of the execution rate of the function associated with theselected icon as determined by function rate analysis module 6 based onrate gesture 12. For instance, the length of indicator bar 16 mayindicate the amount by which function rate analysis module 6 maydetermine the execution rate of the delete function.

Computing device 2 may execute the function associated with the selectedicon at an execution rate based on the indicated rate of execution. Forinstance, as in the example of FIG. 1, computing device 2 may receive anindication of rate gesture 12 indicating a rate of execution of a deletefunction (i.e., a function associated with the selected “DELETE” icon).Function rate analysis module 6 may determine a change in the executionrate of the delete function indicated by rate gesture 12 based on thedistance between location 10 and location 14 (e.g., a change in the rateof execution of the delete function proportional to the distance betweenlocation 10 and location 14). Similarly, function rate analysis module 6may determine that the right-to-left direction of rate gesture 12indicates an increase in the execution rate of the delete function.Function rate analysis module 6 may determine a base rate of executionof the delete function (e.g., one character per second), and maydetermine the execution rate of the delete function, such as by addingthe indicated rate of execution to the base rate of execution. As such,computing device 2 may execute the delete function at the new executionrate determined based on the base rate of execution and the rate ofexecution as indicated by rate gesture 12.

In certain examples, computing device 2 may execute the functionassociated with the selected icon at the execution rate based on theindicated rate of execution in response to receiving a gestureindicating a rate of execution of the function (e.g., rate gesture 12).For instance, as in FIG. 1, computing device 2 may receive an indicationof rate gesture 12 indicating a rate of execution of a delete function.In some examples, computing device 2 may execute the delete function inresponse to receiving the indication of rate gesture 12. As such,computing device 2 may increase the execution rate of the deletefunction as the user provides rate gesture 12. In other words, computingdevice 2 may continue to execute the delete function as the user slideshis or her finger from location 10 to location 14, and may increase therate of deletion as the distance between the user's finger and location10 increases.

In some examples, when the user completes providing rate gesture 12, theexecution rate of the selected icon may reset back to the base rate. Inalternate examples, when the user completes providing rate gesture 12,the execution rate of the selected icon may reset back to the base rateafter the user removes the input unit from display 4. In yet otheralternate examples, after the user completes providing rate gesture 12,the execution rate of the selected icon may remain at its changed rateuntil the user provides another gesture to reset the execution rate backto the base rate of execution.

Furthermore, the change in the execution rate of the function associatedwith the selected icon may be limited to the function associated withthe selected icon. For example, the user may select the “A” icon ongraphical keyboard 8 and change the execution rate associated with theselection of the “A” icon utilizing the example techniques describedabove. In this example, the change in the execution rate associated withthe selection of the “A” icon may not change the execution rateassociated with any other icon of graphical keyboard 8. However, suchaspects should not be considered limiting. In alternate examples, achange in the execution rate associated with one icon may change theexecution rate associated with other icons as well.

FIG. 2 is a block diagram illustrating an example computing device, inaccordance with one or more aspects of this disclosure. As illustratedin FIG. 2, computing device 2 may include function rate analysis module6, display 4, user interface 28, one or more processors 30, one or morestorage devices 32, and transceiver 34. Function rate analysis module 6may include gesture determination module 20, function rate determinationmodule 22, surface area module 24, and function rate indication module26.

Although shown as separate components in FIG. 2, in some examples, oneor more of gesture determination module 20, function rate determinationmodule 22, surface area module 24, and function rate indication module26 may be part of the same module. In some examples, one or more ofgesture determination module 20, function rate determination module 22,surface area module 24, function rate indication module 26, and one ormore processors 30 may be formed in a common hardware unit. In someinstances, one or more of gesture determination module 20, function ratedetermination module 22, surface area module 24, and function rateindication module 26 may be software and/or firmware units that areexecuted on or more processors 30.

In general, the modules of function rate analysis module 6 are presentedseparately for ease of description and illustration. However, suchillustration and description should not be construed to imply that thesemodules of function rate analysis module 6 are necessarily separatelyimplemented, but can be in some examples. Also, in some examples, one ormore processors 30 may include function rate analysis module 6.

User interface 28 may allow a user of computing device 2 to interactwith computing device 2. For example, user interface 28 may allow a userof computing device 2 to interact with computing device 2. Examples ofuser interface 28 may include, but are not limited to, a keypad embeddedon computing device 2, a keyboard, a mouse, a roller ball, buttons, orother devices that allow a user to interact with computing device 2. Insome examples, computing device 2 may not include user interface 28, andthe user may interact with computing device 2 with display 4 (e.g., byproviding various user gestures). In some examples, the user mayinteract with computing device 2 with display 4 or user interface 28.

As discussed above, display 4 may be a liquid crystal display (LCD),e-ink, organic light emitting diode (OLED), or other display that maypresent the content of computing device 2 to a user. Also as discussedabove, display 4 may provide some or all of the functionality of userinterface 28. For example, display 4 may be a presence-sensitive and/ora touch-sensitive interface that can allow a user to interact withcomputing device 2. For instance, display 4 may be a touch-sensitiveinterface that may display a graphical keyboard (e.g., graphicalkeyboard 8 of FIG. 1), may receive user inputs such as touch gestures toselect one or more icons displayed by display 4 (e.g., one or more iconsof graphical keyboard 8), and may receive user inputs such as gesturesthat indicate a rate of execution of a selected icon displayed bydisplay 4 (e.g., rate gesture 12 of FIG. 1).

One or more processors 30 may include any one or more of amicroprocessor, a controller, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field-programmablegate array (FPGA), or equivalent discrete or integrated logic circuitry.One or more processors 30 may be configured to implement functionalityand/or process instructions for execution within computing device 2. Forexample, one or more processors 30 may be capable of processinginstructions stored in one or more storage devices 32.

One or more storage devices 32 may include any volatile, non-volatile,magnetic, optical, or electrical media, such as a hard drive, randomaccess memory (RAM), read-only memory (ROM), non-volatile RAM (NVRAM),electrically-erasable programmable ROM (EEPROM), flash memory, or anyother digital media. Storage device 12 may, in some examples, beconsidered as a non-transitory storage medium. In certain examples, oneor more storage devices 32 may be considered as a tangible storagemedium. The terms “non-transitory” and “tangible” may indicate that thestorage medium is not embodied in a carrier wave or a propagated signal.However, the term “non-transitory” should not be interpreted to meanthat storage device 12 is non-movable. As one example, storage device 12may be removed from local device 4, and moved to another device. Asanother example, a storage device, substantially similar to storagedevice 12, may be inserted into local device 4. A non-transitory storagemedium may store data that can, over time, change (e.g., in RAM).

In some examples, one or more storage devices 32 may store one or moreinstructions that cause one or more processors 30, function rateanalysis module 6, gesture determination module 20, function ratedetermination module 22, surface area module 24, and function rateindication module 26 to perform various functions ascribed to one ormore processors 30, function rate analysis module 6, gesturedetermination module 20, function rate determination module 22, surfacearea module 24, and function rate indication module 26. One or morestorage devices 32 may be considered as a computer-readable storagemedia comprising instructions that cause one or more processors 30,function rate analysis module 6, gesture determination module 20,function rate determination module 22, surface area module 24, andfunction rate indication module 26 to perform various functions.

Transceiver 34 may be configured to transmit data to and receive datafrom one or more remote devices, such as one or more servers or otherdevices. Transceiver 34 may support wireless or wired communication, andmay include appropriate hardware and software to provide wireless orwired communication. For example, transceiver 34 may include one or moreof an antenna, modulators, demodulators, amplifiers, and other circuitryto effectuate communication between computing device 2 and one or moreremote devices.

Computing device 2 may include additional components not shown in FIG. 2for clarity. For example, computing device 2 may include a battery toprovide power to the components of computing device 2. As anotherexample, computing device 2 may include a microphone and speaker toeffectuate telephonic communication. Similarly, the components ofcomputing device 2 may not be necessary in every example of computingdevice 2. For instance, in certain examples computing device 2 may notinclude transceiver 34.

In some examples, one or more processors 30 of computing device 2 maycause display 4 (e.g., a touch-sensitive and/or presence-sensitiveinterface) to display one or more selectable icons, such as one or moreselectable icons of a graphical keyboard (e.g., graphical keyboard 8).In such examples, a user may provide a gesture to select an icondisplayed by display 4, such as a touch gesture provided with an inputunit. Examples of such input units may include, but are not limited to,a finger, a stylus, a pen, and the like. As one example, a user mayprovide a touch gesture to select an icon displayed by display 4 bytouching an area of display 4 that corresponds to the displayed icon. Inanother example, as when display 4 includes a presence-sensitiveinterface, a user may provide a touch gesture to select an icondisplayed by display 4 by bringing an input unit within proximity of anarea of display 4 corresponding to the displayed icon such that theinput unit is sufficiently close to display 4 to enable display 4 todetect the presence of the input unit.

Gesture determination module 20 may determine that a touch gesture hasbeen received to select an icon displayed by display 4, and maydetermine a function associated with the selected icon. For instance,gesture determination module 20 may determine that the functionassociated with a space bar icon (e.g., the “SPACE” icon of graphicalkeyboard 8 of FIG. 1) is to cause display 4 to display a white spacecharacter on presentation portion 9, and may cause presentation portion9 of display 4 to display a white space character in response toreceiving one or more signals indicating that a touch gesture has beenperformed on display 4 to select the space bar icon of the graphicalkeyboard.

In some examples, gesture determination module 20 may determine that agesture has been received that indicates a rate of execution of afunction associated with the selected icon. For instance, as in theexample of FIG. 1, gesture determination module 20 may determine thatthe user provided a touch gesture on location 10 and may also determinethat the user provided rate gesture 12 of FIG. 1 to increase or decreasethe rate of execution of the delete function. In certain examples, therate gesture may include one or more signals that indicate the movementof an input unit from the selected icon (e.g., a first location 10) to asecond, different location of display 4 (e.g., a second location1 14).

As one example, the rate gesture may include a continuous motiongesture, such that the gesture is received from a first location to asecond location with substantially constant contact between the inputunit and display 4. For instance, a user may provide a touch gesturewith an input unit to select an icon, such as the delete key of agraphical keyboard displayed by display 4. The user may, in someexamples, slide the input unit to the second location while maintainingcontact between the input unit and display 4. In certain examples, aswhen display 4 includes a presence-sensitive interface, thesubstantially constant contact during the continuous motion gesture mayinclude maintaining proximity between the input unit and display 4 thatis sufficiently close to enable display 4 to detect the presence of theinput unit throughout the continuous motion gesture.

As one example, the rate gesture may include a motion of an input unitthat follows a substantially horizontal path. For instance, a user mayprovide a touch gesture with an input unit to select an icon displayedby display 4, and may move the input unit horizontally to the left or tothe right. In other examples, the rate gesture may include a motion ofan input unit that follows a non-horizontal path, such as a verticalpath, a circular path, or other paths from one location to another.

In certain examples, gesture determination module 20 may determine thata rate gesture has been received that includes multiple touch gestures.For instance, a user may provide a touch gesture with an input unit toselect a delete key of a graphical keyboard displayed by display 4. Theuser may provide multiple touch gestures at or near the delete key byquickly tapping the delete key with the input unit to indicate anincreased rate of execution of the delete function. Gesturedetermination module 20 may determine that a rate gesture has beenreceived when gesture determination module 20 receives one or moresignals indicating that multiple touch gestures have been received at ornear the selected icon on display 4 within a threshold amount of time.

In some examples, gesture determination module 20 may determine that arate gesture has been received when a touch gesture is received at alocation of display 4 configured to receive rate gestures. For example,computing device 2 may cause display 4 to display a graphical keyboard.In addition, computing device 2 may cause display 4 to display one ormore areas, such as one or more buttons (as part of the graphicalkeyboard or separate from the graphical keyboard) that are configured toreceive rate gestures. In such an example, a user may provide a touchgesture with an input unit to select an icon, such as a space bar iconof the graphical keyboard. The user may then provide a touch gesture ata location of display 4 configured to receive rate gestures, such as ata button displayed by display 4.

In certain examples, gesture determination module 20 may determine thata rate gesture has been received when a touch gesture is received at oneor more of the locations of display 4 that are configured to receiverate gestures within a threshold amount of time after a touch gesturehas been received to select an icon displayed by display 4. Forinstance, gesture determination module 20 may determine that if a touchgesture received at one or more of the locations configured to receiverate gestures has not been received within a threshold amount of timeafter a touch gesture was received to select an icon (e.g., one second),then no rate gesture has been received. In contrast, gesturedetermination module 20 may determine that if a touch gesture isreceived at one or more of the locations configured to receive rategestures within a threshold amount of time after a touch gesture wasreceived to select an icon (e.g., one second), then a rate gesture hasbeen received.

In some examples, gesture determination module 20 may determine that arate gesture has been received based on a change in the amount ofsurface area of display 4 that is in contact with an input unit (e.g., auser's finger). For instance, display 4 may include a touch-sensitiveinterface. A user may provide a touch gesture with his or her finger toselect an icon displayed by display 4 by touching an area of display 4that corresponds to the displayed icon. The user may then provide agesture that indicates a rate of execution of a function associated withthe icon by pressing down on display 4 with his or her finger. Such anincrease in force may cause the surface area of the touch-sensitivedisplay that is in contact with the user's finger to increase.

Gesture determination module 20 may receive one or more signalsindicating the surface area of the touch-sensitive display that is incontact with an input unit (e.g., the user's finger), and may causesurface area module 24 to determine a surface area of a portion of thetouch-sensitive display that is in contact with the input unit. In someexamples, display 4 may indicate a radius of contact area between theinput unit and display 4. For instance, the contact area may be an areaof the touch-sensitive display where the detected capacitance of thetouch-sensitive display changes responsive to the surface area of theinput unit (e.g., a finger). In such examples, surface area module 24may determine the surface area of the portion of display 4 that is incontact with the input unit using the radius indicated by display 4. Incertain examples, display 4 may indicate a number of pixels or otherunits of known area of display 4 that are in contact with the inputunit. Surface area module 24 may determine the surface area of theportion of display 4 that is in contact with the input unit, such as bysumming the number of units of known area.

Gesture determination module 20 may cause surface area module 24 todetermine a change in surface area of the portion of display 4 that isin contact with the input unit. Gesture determination module 20 maycompare the detected change in the surface area of the portion ofdisplay 4 that is in contact with the input unit to a threshold value.In some examples, if the change in the surface area is less than athreshold value, gesture determination module 20 may determine that arate gesture has not been provided. For instance, a user may rest aninput unit on an icon displayed by display 4 after providing a touchgesture to select the icon. However, the user may unconsciously increaseor decrease the force applied to the input unit while resting the inputunit on display 4 without intending to provide a rate gesture. Bycomparing the determined change in surface area to a threshold value todetermine if a rate gesture has been received, gesture determinationmodule 20 may minimize the occurrences of unintended rate gestures.

In certain examples, gesture determination module 20 may determine thata rate gesture has been received when the determined change in surfacearea is greater than a threshold value. The threshold value may includean absolute change in surface area (e.g., a change of 2 squaremillimeters), a percentage of change in surface area (e.g., a tenpercent change in surface area), or other types of measurements that candetect a relative change in surface area.

In response to receiving one or more signals indicating that a rategesture has been performed on display 4, gesture determination module 20may cause function rate determination module 22 to determine the rate ofexecution of a function associated with the selected icon. As oneexample, gesture determination module 20 may determine that a rategesture has been provided that includes a motion of an input unit from afirst location of display 4 to a second location of display 4. In suchan example, function rate determination module 22 may determine adistance between the first location and the second location, and maydetermine the execution rate of a function associated with the selectedicon based on the determined distance. In some examples, function ratedetermination module 22 may increase or decrease the execution rate ofthe function associated with the selected icon proportionally to thedetermined distance. In other examples, function rate determinationmodule 22 may increase or decrease the execution rate of the function ina non-linear manner with respect to the determined distance, such asproportionally to the square of the distance, proportionally to thenatural logarithm of the distance, or any other such manner.

As an example, the selected icon may be a delete icon of a graphicalkeyboard displayed by display 4. Function determination module 22 mayobtain a base rate of execution of the delete function (i.e., thefunction associated with the delete icon), such as by obtaining the baserate of execution from an application executing on one or moreprocessors 30. For instance, the base rate of execution of the deletefunction may be to delete one character per second while the delete iconis selected. Function rate determination module 22 may determine achange in the execution rate of the delete function relative to theobtained base rate of execution based on the determined distance betweenthe first and second locations of the received rate gesture. Forinstance, function rate determination module 22 may add the determinedchange in the execution rate to the base rate of execution or subtractthe determined change in the execution rate from the base rate ofexecution to determine the execution rate of the function.

In certain examples, function rate determination module 22 may determinethe change in execution rate based on a direction of the motion of theinput unit during the received rate gesture. For instance, function ratedetermination module 22 may add the determined change in execution rateto the base rate of execution when the rate gesture is received with aright-to-left direction. Similarly, function rate determination module22 may subtract the determined change in execution rate from the baserate of execution when the rate gesture is received with a left-to-rightdirection.

However, such techniques should not be considered limited to the abovedirectional examples. For instance, function rate determination module22 may, in some examples, add the determined change in execution rate tothe base rate of execution when the rate gesture is received with aleft-to-right motion, and may subtract the determined change inexecution rate from the base rate of execution when the rate gesture isreceived with a right-to-left direction.

Similarly, the rate gesture may be received with various directionalpaths, such as a vertical path, a circular path, and the like. Functionrate determination module 22 may determine the change in execution ratebased on the total distance traveled by the input unit during the rategesture, or based on the linear distance between a first location at thestart of the rate gesture and a second location at the end of the rategesture. Function rate determination module 22 may increase or decreasethe execution rate of the function associated with the selected iconbased on the direction of the path of the rate gesture.

In some examples, gesture determination module 20 may determine that arate gesture has been provided that includes a change in the amount ofsurface area of a portion of display 4 that is in contact with an inputunit. For example, as discussed above, gesture determination module 20may receive one or more signals, which it may possibly receive fromdisplay 4, indicating a change in the amount of surface area of aportion of display 4 that is in contact with an input unit, and maycause surface area module 24 to determine a first surface area of theportion of display 4 that is in contact with the input unit and todetermine a second surface area of the portion of display 4 that is incontact with the input unit. Gesture determination module 20 maydetermine a surface area change between the first surface area and thesecond surface area, and may determine that a rate gesture has beenreceived (e.g., when the first surface area change exceeds a thresholdvalue).

Function rate determination module 24 may determine the execution rateof a function associated with the selected icon based on the determinedchange in surface area. For instance, function rate determination module24 may obtain a base rate of execution of the function associated withthe selected icon. Function rate determination module 24 may determine achange in execution rate relative to the base rate based on thedetermined surface area change. For instance, function ratedetermination module 24 may determine the change in execution rate asproportional to the change in surface area, as proportional to thesquare of the change in surface area, and the like.

In some examples, function rate determination module 24 may add thedetermined change in execution rate to the base rate to determine theexecution rate of the function when the change in surface area isgreater than zero. Similarly, function rate determination module 24 maysubtract the determined change in execution rate from the base rate todetermine the execution rate of the function when the change in surfacearea is less than zero.

Computing device 2 may execute the function associated with the selectedicon at an execution rate based on the rate of execution indicated bythe received rate gesture as determined by function rate determinationmodule 24. In some examples, computing device 2 may execute the functionassociated with the selected icon at a rate that is substantiallysimilar to the rate of execution indicated by the received rate gesture.

As one example, one or more processors 30 of computing device 2 mayexecute the function associated with the selected icon at the executionrate based on the indicated rate of execution in response to receiving arate gesture. For instance, computing device 2 may execute the functionassociated with the selected icon while receiving the rate gesture, andmay execute the function at an execution rate based on the rate ofexecution as indicated by the rate gesture.

In certain examples, one or more processors 30 of computing device 2 mayexecute the function associated with the selected icon at the executionrate based on the indicated rate of execution (e.g., the sum of a baserate of execution and a change in execution rate as indicated by adistance between a first and second location of a rate gesture) inresponse to a subsequently received gesture for the selection of theicon associated with the function. As an example, computing device 2 mayreceive an indication of a first gesture for the selection of a “DELETE”icon of a graphical keyboard. Computing device 2 may receive anindication of a second gesture (e.g., rate gesture 12 of FIG. 1)indicating a rate of execution of a delete function associated with the“DELETE” icon. Computing device 2 may determine an execution rate of thedelete function based on the rate of execution as indicated by thesecond gesture (i.e., the rate gesture). Computing device 2 may, incertain examples, receive an indication of a third gesture, subsequentto and separate from the indication of the first gesture for theselection of the “DELETE” icon and the indication of the second gestureindicating the rate of execution of the delete function associated withthe “DELETE” icon. In some examples, in response to receiving theindication of the third gesture for the selection of the “DELETE” icon,computing device 2 may execute the delete function associated with the“DELETE” icon at an execution rate based on the rate of executionindicated by the indication of the second gesture (i.e., the previouslyreceived rate gesture). In other examples, in response to receiving theindication of the third gesture for the selection of the “DELETE” icon,computing device 2 may execute the delete function associated with the“DELETE” icon at a base rate of execution, as determined irrespective ofthe indication of the second gesture indicating the rate of execution ofthe delete function.

In certain examples, function rate indication module 26 may causecomputing device 2 to output an indication of the execution rate of thefunction associated with the selected icon. As one example, functionrate indication module 26 may cause display 4 to output a visualindication of the execution rate of the function. For example, as in theexample of FIG. 1, function rate indication module 26 may cause display4 to output an indicator bar that indicates the execution rate of thefunction. In certain examples, function rate indication module 26 maycause display 4 to output one or more visual indications of theexecution rate of the function, such as a textual or numeral indicationof the execution rate, a change in color of a cursor, a change in colorof the selected icon, or a movement of the selected icon that follows amovement of the input unit. For instance, function rate indicationmodule 26 may cause display 4 to output a numerical indicator thatindicates the absolute execution rate of the function. In anotherexample, function rate indication module 26 may cause display 4 tooutput a numerical indicator that indicates a relative execution rate ofthe function (e.g., a scale from zero to one hundred, with the valuezero indicating no change in execution rate and the value one hundredindicating a maximum execution rate of the function).

In some examples, function rate indication module 26 may cause display 4to output a visual indication of the execution rate including a changein color of the selected icon. For instance, the selected icon may be adelete key of a graphical keyboard displayed by display 4. Function rateindication module 26 may cause display 4 to change the color of thedelete key through a color spectrum to indicate the execution rate ofthe delete function (e.g., from white indicating no change in theexecution rate to black indicating a maximum execution rate of thefunction, with darker shades of grey indicating a greater executionrate).

In certain examples, function rate indication module 26 may causecomputing device 2 to output an audible indication of the executionrate. For example, computing device 2 may include a speaker deviceconfigured to provide audio output. As one example, function rateindication module 26 may cause computing device 2 to output a tone ofconstant pitch, but may vary the volume of the tone to indicate theexecution rate of the function. For instance, function rate indicationmodule 26 may cause computing device 2 to output a tone with a greatervolume when the execution rate of the function increases and to outputthe tone with a decreased volume when the execution rate of the functiondecreases. Similarly, function rate indication module 26 may causecomputing device 2 to output a tone of constant volume, but may vary thepitch of the tone to indicate the execution rate of the function (e.g.,an increased pitch indicating an increased execution rate of thefunction and a decreased pitch indicating a decreased execution rate ofthe function).

In certain examples, after receiving an indication of a first usergesture for the selection of an icon displayed by display 4 (e.g., atouch gesture), function rate indication module 26 may cause display 4to display an indication of a second user gesture that may be providedby the user to indicate a rate of execution of a function associatedwith the selected icon (e.g., a rate gesture). For instance, functionrate indication module 26 may cause display 4 to display a horizontal orvertical line, indicating that the user may provide a rate gesture tocause computing device 2 to change the execution rate of a functionassociated with the selected icon. For instance, a user may provide atouch gesture to select a “DELETE” icon of a graphical keyboarddisplayed by display 4. In such an example, function rate indicationmodule 26 may cause display 4 to display a horizontal line indicatingthat the user may provide a sliding gesture in a substantiallyhorizontal path to cause computing device 2 to increase or decrease therate of execution of the delete function (i.e., the function associatedwith the selected “DELETE” icon).

In another example, function rate indication module 26 may cause display4 to display a plus sign (e.g., above the selected icon) and a minussign (e.g., below the selected icon). In such an example, the displayedvisual cues may indicate to a user that a rate gesture may be providedto cause computing device 2 to change the execution rate of the selectedicon by sliding the input unit vertically (e.g., toward the plus sign toincrease the rate of execution of the function, or toward the minus signto decrease the rate of execution of the function). In some examples,function rate indication module 26 may cause display 4 to display anindication, such as a textual description of a rate gesture that may beprovided to cause computing device 2 to change the execution rate of afunction associated with the selected icon. As one example, afterreceiving an indication of a touch gesture to select an icon displayedby display 4, function rate indication module 26 may cause display 4 todisplay the text “Drag left to increase rate. Drag right to decreaserate.” In certain examples, function rate indication module 26 may causea speaker device of computing device 2 to output an audio description ofrate gestures that may be provided. For instance, function rateindication module 26 may cause a speaker device of computing device 2 toprovide the audio output, “drag left or right to change rate.”

There may be different example techniques for function rate indicationmodule 26 to cause computing device 2 to output an indication of theexecution rate of the function. Similarly, there may different exampletechniques for function rate indication module 26 to cause computingdevice 2 to output an indication of a second user gesture that may beprovided to cause computing device 2 to change the execution rate of aselected icon. The examples of this disclosure are not limited to theabove examples.

FIG. 3 is a flow chart illustrating an example operation of a computingdevice, in accordance with one or more aspects of this disclosure. Forpurposes of illustration only, the example operation is described belowwithin the context of computing device 2 of FIG. 1 and FIG. 2. Anindication of a first gesture to select an icon of a graphical keyboarddisplayed by a presence-sensitive interface may be received by thecomputing device having one or more processors and thepresence-sensitive interface (40). For example, display 4 may include apresence-sensitive interface. Computing device 2 may cause display 4 todisplay one or more icons, such as icons of a graphical keyboard. A usermay provide a gesture, such as a touch gesture with an input unit (e.g.,a finger, pen, stylus, and the like) to select an icon displayed bydisplay 4. For instance, a user may touch, with the input unit, an areaof display 4 that corresponds to the displayed icon. In other examples,a user may bring the input unit within proximity of an area of display 4that corresponds to the displayed icon, such that the input unit issufficiently close to enable display 4 to detect the presence of theinput unit.

An indication of a second user gesture that indicates a rate ofexecution of a function associated with the selected icon may bereceived (42). As one example, the selected icon may be a delete key ofa graphical keyboard displayed by display 4. A user may provide thegesture of sliding an input unit from the delete icon to a secondlocation on display 4. Gesture determination module 20 may receive oneor more signals (e.g., from display 4 or some intervening module)indicating that the gesture of sliding the input unit from the deleteicon to the second location of display 4 has been received. In responseto receiving the indication of the user gesture, gesture determinationmodule 20 may determine that a rate gesture has been received.

The function associated with the selected icon may be executed at anexecution rate based on the indicated rate of execution (44). Forexample, function rate determination module 22 may determine that thereceived gesture indicates a change in execution rate of the functionassociated with the selected icon based on a determined distance betweena first location of the gesture and a second location of the gesture.Computing device 2 may execute the function associated with the selectedicon at an execution rate based on the indicated rate of execution asdetermined by function rate determination module 22.

FIG. 4 is a flow chart illustrating another example operation of acomputing device, in accordance with one or more aspects of thisdisclosure. For purposes of illustration only, the example operation isdescribed below within the context of computing device 2 of FIG. 1 andFIG. 2. An indication of a first user gesture may be received at a firstlocation of a presence-sensitive interface to select an icon of agraphical keyboard displayed by the presence-sensitive interface (50).For example, display 4 may include a presence-sensitive interface. Oneor more processors 30 of computing device 2 may cause display 4 todisplay a graphical keyboard. A user may provide a touch gesture with aninput unit for the selection of an icon of the graphical keyboard.Gesture determination module 20 may receive one or more signals fromdisplay 4 indicating that the user has touched an area of display 4 thatcorresponds to an area of display 4 that displays an icon of thegraphical keyboard. In response, gesture determination module 20 maydetermine that a touch gesture has been provided to select the icon ofthe graphical keyboard displayed by display 4.

An indication of a second user gesture that indicates a rate ofexecution of a function associated with the selected icon comprising amotion of an input unit from the first location to a second location ofthe presence-sensitive interface may be received (52). For example,gesture determination module 20 may receive one or more signals,potentially from display 4, indicating that a user has provided a touchgesture with an input unit to select a delete key icon of a graphicalkeyboard displayed by display 4. In certain examples, gesturedetermination module 20 may receive one or more signals (e.g., fromdisplay 4) indicating that the user has slid the input from the deletekey to a second, different location of display 4. In some examples,gesture determination module 20 may receive one or more signals fromdisplay 4 indicating that a continuous motion gesture has been provided,such that the motion of the input unit from the first location to thesecond location has been received by display 4 with substantiallyconstant contact between the input unit and display 4.

A distance between the first location and the second location may bedetermined (54). For instance, function rate determination module 22 maydetermine a linear distance between the first location and the secondlocation. In other examples, function rate determination module 22 maydetermine the total distance traveled by the input device between thefirst location and the second location. A base rate of execution of thefunction may be obtained (56). As an example, the selected icon may be adelete icon of the graphical keyboard. In such an example, the functionassociated with the selected icon may be a delete function to removecharacters that are displayed by display 4. Function rate determinationmodule 22 may obtain a base rate of execution of the delete function,such as from an application actively executing on one or more processors30. As an example, the base rate of execution of the delete function maybe three characters per second.

A change in execution rate of the function relative to the base rate maybe determined based on the determined distance (58). For example,function rate determination module 22 may determine a change inexecution rate of the function as proportional to the distance betweenthe first location and the second location. In another example, functionrate determination module 22 may determine the change in execution rateproportionally to the square of the distance between the first locationand the second location. In some examples, function rate determinationmodule 22 may determine the change in execution rate of the functionrelative to the base rate by adding the determined change in executionrate to the base rate (e.g., when the motion of the gesture is receivedwith a right-to-left motion). In other examples, function ratedetermination module 22 may determine the change in execution rate ofthe function relative to the base rate by subtracting the determinedchange in execution rate from the base rate (e.g., when the motion ofthe gesture is received with a left-to-right motion). The function maybe executed at the determined execution rate (60). For instance, thefunction may be the delete function associated with the delete key iconof the displayed graphical keyboard. One or more processors 30 ofcomputing device 2 may execute the delete function at the execution rateas determined by function rate determination module 22.

An indication of the execution rate of the function may be output (62).For example, function rate indication module 26 may cause display 4 tooutput a visual indication of the execution rate of the function. Forinstance, function rate indication module 26 may cause display 4 tooutput a numerical or textual indication of the execution rate. Incertain examples, function rate indication module 26 may cause computingdevice 2 to output an audible indication of the execution rate of thefunction. For instance, the audible indication may include a tone withconstant pitch and volume that varies proportionally to the executionrate of the function.

FIG. 5 is a flow chart illustrating another example operation of acomputing device, in accordance with one or more aspects of thisdisclosure. For purposes of illustration only, the example operation isdescribed below within the context of computing device 2 of FIG. 1 andFIG. 2. An indication of a first user gesture to select an icon of agraphical keyboard displayed by a presence-sensitive interface may bereceived (70). As one example, gesture determination module 20 mayreceive one or more signals from display 4 indicating that a user hastouched an area of display 4 corresponding to an icon of a graphicalkeyboard displayed by display 4, and may determine that a touch gestureto select the icon has been received.

An indication of a second user gesture that indicates a rate ofexecution of a function associated with the selected icon comprising achange in an amount of surface area of a portion of thepresence-sensitive interface that is in contact with an input unit maybe received (72). As one example, gesture determination module 20 mayreceive one or more signals from display 4 indicating that a user hasprovided a touch gesture with an input unit to select an icon displayedby display 4. Gesture determination module 20 may cause surface areamodule 24 to determine a first surface area of a portion of thetouch-sensitive display that is in contact with the input unit. Incertain examples, the user may provide a second gesture to indicate arate of execution of a function associated with the selected icon byincreasing or decreasing the force applied to the input unit. Theincreased or decreased force applied to the input unit may increase ordecrease the surface area of the input unit that is in contact withdisplay 4. Gesture determination module 20 may receive one or moresignals from display 4 indicating the change in surface area of display4 that is in contact with the input unit, and may cause surface areamodule 24 to determine a second surface area of the portion of thetouch-sensitive display that is in contact with the input unit. Gesturedetermination module 20 may determine a surface area change between thefirst surface area and the second surface area.

A base rate of execution of the function may be obtained (74). Forexample, the function associated with the selected icon may be a deletefunction to remove characters displayed by display 4. Function ratedetermination module 22 may obtain a base rate of execution of thedelete function, such as from an application actively executing on oneor more processors 30 (e.g., deleting one character per second).

A change in execution rate of the function relative to the base rate maybe determined based on the change in surface area (76). For example,function rate determination module 22 may determine a change inexecution rate of the function based on the change in surface area(e.g., proportionally to the change in surface area). In some examples,the change in execution rate of the function relative to the base ratemay be determined by adding the determined change in execution rate tothe base rate (e.g., when the change in surface area is greater thanzero). In other examples, function rate determination module 22 maydetermine the change in execution rate of the function relative to thebase rate by subtracting the determined change in execution rate fromthe base rate (e.g., when the change in surface area is less than zero).

The function may be executed at the determined execution rate (78). Oneor more processors 30 of computing device 2 may execute the functionassociated with the selected icon at the execution rate as determined byfunction rate determination module 22. An indication of the executionrate of the function may be output (80). Similar to block (62) of FIG.4, function rate indication module 26 may cause display 4 to output oneor more of a visual or audible indication of the execution rate of thefunction.

The techniques described in this disclosure may be implemented, at leastin part, in hardware, software, firmware, or any combination thereof.For example, various aspects of the described techniques may beimplemented within one or more processors, including one or moremicroprocessors, digital signal processors (DSPs), application specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs), orany other equivalent integrated or discrete logic circuitry, as well asany combinations of such components. The term “processor” or “processingcircuitry” may generally refer to any of the foregoing logic circuitry,alone or in combination with other logic circuitry, or any otherequivalent circuitry. A control unit including hardware may also performone or more of the techniques of this disclosure.

Such hardware, software, and firmware may be implemented within the samedevice or within separate devices to support the various techniquesdescribed in this disclosure. In addition, any of the described units,modules or components may be implemented together or separately asdiscrete but interoperable logic devices. Depiction of differentfeatures as modules or units is intended to highlight differentfunctional aspects and does not necessarily imply that such modules orunits must be realized by separate hardware, firmware, or softwarecomponents. Rather, functionality associated with one or more modules orunits may be performed by separate hardware, firmware, or softwarecomponents, or integrated within common or separate hardware, firmware,or software components.

The techniques described in this disclosure may also be embodied orencoded in an article of manufacture including a computer-readablestorage medium encoded with instructions. Instructions embedded orencoded in an article of manufacture including a computer-readablestorage medium encoded, may cause one or more programmable processors,or other processors, to implement one or more of the techniquesdescribed herein, such as when instructions included or encoded in thecomputer-readable storage medium are executed by the one or moreprocessors. Computer readable storage media may include random accessmemory (RAM), read only memory (ROM), programmable read only memory(PROM), erasable programmable read only memory (EPROM), electronicallyerasable programmable read only memory (EEPROM), flash memory, a harddisk, a compact disc ROM (CD-ROM), a floppy disk, a cassette, magneticmedia, optical media, or other computer readable media. In someexamples, an article of manufacture may include one or morecomputer-readable storage media.

In some examples, a computer-readable storage medium may include anon-transitory medium. The term “non-transitory” may indicate that thestorage medium is not embodied in a carrier wave or a propagated signal.In certain examples, a non-transitory storage medium may store data thatcan, over time, change (e.g., in RAM or cache).

Various aspects have been described in this disclosure. These and otheraspects are within the scope of the following claims.

1. A method, performed by a computing device having one or moreprocessors and a presence-sensitive interface, the method comprising:receiving, by the computing device, an indication of a first usergesture to select an icon of a graphical keyboard displayed by thepresence-sensitive interface of the computing device; receiving, by thecomputing device, an indication of a second user gesture that indicatesa rate of execution of a function associated with the selected icon; andexecuting, by the computing device, the function associated with theselected icon at an execution rate based on the indicated rate ofexecution.
 2. The method of claim 1, wherein the execution rate issubstantially similar to the indicated rate of execution.
 3. The methodof claim 1, wherein the first user gesture is received at a firstlocation of the presence-sensitive interface, and wherein receiving theindication of the second user gesture comprises receiving an indicationof a motion of an input unit from the first location to a secondlocation of the presence-sensitive interface.
 4. The method of claim 3,wherein receiving the indication of the motion of the input unitcomprises receiving an indication of a continuous motion gesture fromthe first location to the second location.
 5. The method of claim 4,wherein receiving the indication of the continuous motion gesturecomprises receiving an indication of the motion of the input unit fromthe first location to the second location with substantially constantcontact between the input unit and the presence-sensitive interface. 6.The method of claim 3, further comprising: determining a distancebetween the first location and the second location; and determining theexecution rate based on the determined distance.
 7. The method of claim6, further comprising: obtaining a base rate of execution of thefunction associated with the selected icon, wherein determining theexecution rate comprises: determining a change in execution raterelative to the base rate based on the determined distance; and addingthe determined change in the execution rate to the base rate todetermine the execution rate.
 8. The method of claim 6, furthercomprising: obtaining a base rate of execution of the functionassociated with the selected icon, wherein determining execution ratecomprises: determining a change in execution rate relative to the baserate based on the determined distance; and subtracting the determinedchange in execution rate from the base rate to determine the executionrate.
 9. The method of claim 3, further comprising: determining theexecution rate based on the direction of the motion of the input unitfrom the first location to the second location of the presence-sensitiveinterface.
 10. The method of claim 1, wherein receiving the indicationof the second user gesture comprises receiving, by the computing device,an indication of a change in an amount of surface area of a portion ofthe presence-sensitive interface that is in contact with an input unit.11. The method of claim 10, wherein receiving the indication of thechange in the amount of surface area of the portion of thepresence-sensitive interface that is in contact with the input unitcomprises receiving an indication of a first surface area of the portionof the presence-sensitive interface that is in contact with the inputunit, and receiving an indication of a second surface area of theportion of the presence-sensitive interface that is in contact with theinput unit, the method further comprising: determining a surface areachange between the first surface area and the second surface area; anddetermining the execution rate based on the determined surface areachange.
 12. The method of claim 11, further comprising: obtaining a baserate of execution of the function associated with the selected icon,wherein determining the execution rate comprises: determining a changein execution rate relative to the base rate based on the determinedsurface area change; and adding the determined change in execution rateto the base rate to determine the execution rate.
 13. The method ofclaim 12, wherein the determined surface area change between the firstsurface area and the second surface area is greater than zero.
 14. Themethod of claim 11, further comprising: obtaining a base rate ofexecution of the function associated with the selected icon, whereindetermining the execution rate comprises: determining a change inexecution rate relative to the base rate based on the determined surfacearea change; and subtracting the determined change in execution ratefrom the base rate to determine the execution rate.
 15. The method ofclaim 14, wherein the determined surface area change between the firstsurface area and the second surface area is less than zero.
 16. Themethod of claim 1, further comprising: outputting, with the computingdevice, an indication of the execution rate of the function associatedwith the selected icon.
 17. The method of claim 16, wherein outputtingthe indication of the execution rate of the function associated with theselected icon comprises outputting a visual indication of the executionrate of the function.
 18. The method of claim 16, wherein outputting theindication of the execution rate of the function associated with theselected icon comprises outputting an audible indication of theexecution rate.
 19. A computer-readable storage medium comprisinginstructions that, if executed by a computing device having one or moreprocessors and a presence-sensitive interface, cause the computingdevice to perform a method, the method comprising: receiving, by thecomputing device, an indication of a first user gesture to select anicon of a graphical keyboard displayed by the presence-sensitiveinterface of the computing device; receiving, by the computing device,an indication of a second user gesture that indicates a rate ofexecution of a function associated with the selected icon; andexecuting, by the computing device, the function associated with theselected icon at an execution rate based on the indicated rate ofexecution.
 20. A computing device, comprising: one or more processors; apresence-sensitive interface operable to: display a graphical keyboardhaving one or more selectable icons; receive an indication of a firstuser gesture to select an icon of the graphical keyboard displayed bythe presence-sensitive interface; and receive an indication of a seconduser gesture that indicates a rate of execution of a function associatedwith the selected icon; and instructions, that if executed by the one ormore processors, cause the computing device to: determine a rate of theindicated rate of execution; and perform the function associated withthe selected icon at an execution rate based on the determined rate ofthe indicated rate of execution.